package com.yxinsur.imc.business.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yxinsur.imc.business.domain.ImcFundBrokerExpression;
import com.yxinsur.imc.business.form.FundBrokerForm;
import com.yxinsur.imc.business.vo.FundBrokerExpressionVo;
import com.yxinsur.imc.common.core.domain.AjaxResult;

/**
 * 人员口径（暨口径达式配置）Service接口
 *
 * @author imc
 * @date 2021-10-29
 */
public interface IImcFundBrokerExpressionService extends IService<ImcFundBrokerExpression> {
    /**
     * 查询人员口径（暨口径达式配置）
     *
     * @param id 人员口径（暨口径达式配置）ID
     * @return 人员口径（暨口径达式配置）
     */
    public ImcFundBrokerExpression selectImcFundBrokerExpressionById(Long id);

    /**
     * 查询人员口径（暨口径达式配置）列表
     *
     * @param imcFundBrokerExpression 人员口径（暨口径达式配置）
     * @return 人员口径（暨口径达式配置）集合
     */
    public List<ImcFundBrokerExpression> selectImcFundBrokerExpressionList(ImcFundBrokerExpression imcFundBrokerExpression);

    /**
     * 新增人员口径（暨口径达式配置）
     *
     * @param fundBrokerForm 人员口径（暨口径达式配置）
     * @return 结果
     */
    public int insertImcFundBrokerExpression(FundBrokerForm fundBrokerForm);

    /**
     * 修改人员口径（暨口径达式配置）
     *
     * @param fundBrokerForm 人员口径（暨口径达式配置）
     * @return 结果
     */
    public int updateImcFundBrokerExpression(FundBrokerForm fundBrokerForm);

    /**
     * 批量删除人员口径（暨口径达式配置）
     *
     * @param ids 需要删除的人员口径（暨口径达式配置）ID
     * @return 结果
     */
    public int deleteImcFundBrokerExpressionByIds(Long[] ids);

    /**
     * 删除人员口径（暨口径达式配置）信息
     *
     * @param id 人员口径（暨口径达式配置）ID
     * @return 结果
     */
    public int deleteImcFundBrokerExpressionById(Long id);

    /**
     * 根据基本法id获得相应的人员口径配置
     * @param fundId
     * @return
     */
    List<FundBrokerExpressionVo> selectImcFundBrokerExpressionByFundId(Long fundId);

    /**
     * 生成校验口径表达式
     * @param fundBrokerForm
     * @return
     */
    AjaxResult checkExpenseExpression(FundBrokerForm fundBrokerForm);
}
